Distributed server systems have become a standard technique for the implementation of databases, Web servers, application servers, etc. Accesses that are made to the data stored in such systems are known as transactions. Transactions that modify data stored in server systems present certain challenges in the operations of a distributed server system. In particular, modifications to data must be propagated to all necessary locations in the distributed server system in order to ensure that all portions of the system contain consistent data.
Distributed or Global Transactions use a completion protocol to guarantee data consistency among multiple systems. The “standard” protocol used to achieve consistency is the two phase commit protocol. The two phase commit protocol requires that transaction state be recovered when a coordinator fails and then restarts. This is conventionally accomplished by maintaining a transaction log either in a file system, a database, or another persistent store. Disk or network writes are expensive and various optimization techniques are used to minimize the number of log entries used for transaction processing. However, a need arises for a technique by which transaction state logging can be reduced, so as to reduce the processing and communications expense that is necessary for transaction processing.